#include <graphics/gfx.h>
#include <proto/graphics.h>
LONG BltBitMap()
SYNOPSIS
struct BitMap * srcBitMap LONG xSrc LONG ySrc struct BitMap * destBitMap LONG xDest LONG yDest LONG xSize LONG ySize ULONG minterm ULONG mask PLANEPTR tempA
LOCATION
In GfxBase at offset 5
FUNCTION
Moves a part of a bitmap around or into another bitmaps.
INPUTS
srcBitMap
Copy from this bitmap.
xSrc, ySrc
This is the upper left corner of the area to copy.
destBitMap
Copy to this bitmap. May be the same as srcBitMap.
xDest, yDest
Upper left corner where to place the copy
xSize, ySize
The size of the area to copy
minterm
How to copy. Most useful values are 0x00C0 for a vanilla
copy, 0x0030 to invert the source and then copy or 0x0050
to ignore the source and just invert the destination. If
you want to calculate other values, then you must know that
channel A is set, if you are inside the rectangle, channel
B is the source and channel C is the destination of the
rectangle.
Bit ABC
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111
So 0x00C0 means: D is set if one is inside the rectangle
(A is set) and B (the source) is set and cleared otherwise.
To fill the rectangle, you would want to set D when A is
set, so the value is 0x00F0.
mask
Which planes should be copied. Typically, you should set
this to ~0L.
tempA
If the copy overlaps exactly to the left or right (i.e. the
non
zero, it
points to enough chip accessible memory to hold a line of a
source for the blit (ie. CHIP RAM). BltBitMap will allocate
(and free) the needed TempA if none is provided and one is
needed. Blit overlap is determined from the relation of
non
masked planes in the source and destination
bit maps.
RESULT
The number of planes actually involved in the blit.
NOTES
If a special hardware is available, this function will use it.